#include "stereo.h"
using namespace irr;
using namespace core;
using namespace video;
using namespace std;
using namespace scene;

/** @brief Constructeur de la classe EyeStereo
*	
*	@param device
*		Pointeur sur irrlicht
*	@param lunettes
*		Pointeur sur l'objet de gestion des lunettes
*	@param camera
*		Pointeur sur la camera
*/
EyeStereo::EyeStereo(IrrlichtDevice *device, VuzixGlasses* lunettes, ICameraSceneNode* camera) : lunettes(lunettes), camera(camera)
{
    driver = device->getVideoDriver();

    sceneManager = device->getSceneManager();

	cote = 0;
	ecart = 6.0f;
}


/** @brief Methode draw() de la classe EyeStereo
*	
*	draw rend la scene, sur le premier ecran et la fois suivante sur le deuxieme ecran
*
*
*/
int EyeStereo::draw()
{
   if (cote==0){	
		vector3df positionInitiale = camera->getAbsolutePosition();
		matrix4 m = camera->getAbsoluteTransformation();
		matrix4 right_move;
		right_move.setTranslation(vector3df (-5.0f,0,0));
		camera->setPosition((m*right_move).getTranslation());

		
		sceneManager->drawAll ();
        lunettes->setLeft();
        cote = -1;
		camera->setPosition(positionInitiale);
	
    }else {
         driver->clearZBuffer();
		
		 cote = 0;
		 sceneManager->drawAll ();
		 lunettes->setRight();
     }

	return 0;
}